package io;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * JAVA IO 输入与输出
 * java按照输入与输出方向划分两个操作:读和写
 * 输入是用来读取的，是从外界输入到程序中的方向。
 * 输出是用来写出的。
 *
 * java将输入与输出比喻为"流(stream)",即:向同一侧顺序移动的过程。
 * 并且定义了两个超类:
 * java.io.InputStream:输入流
 * 里面规定了所有字节输入流的读取方法。将来实际读取不同设备的输入流都继承自它，因此
 * 都会有这里定义的读取操作，使得程序员可以用相同的读取方式读取不同设备。
 *
 * java.io.OutputStream:输出流。所有字节输出流都继承自它，里面定义了写出字节的方法。
 *
 *
 * 文件流:
 * java.io.FileInputStream和FileOutputStream
 * 它们继承自InputStream和OutputStream.用来连接文件，进行读写文件数据的流。
 */

public class FOSDemo {
    public static void main(String[] args) throws IOException {
        /*
            文件输出流提供了两种构造方法:
            需要注释，如果指定的文件不存在会自动将其创建出来，前提是该文件所在的目录
            必须存在!
         */
//        File file = new File("./fos.dat");
//        FileOutputStream fos = new FileOutputStream(file);

//        FileOutputStream fos = new FileOutputStream("./fos.dat");
//        /*
//            void write(int d)
//            写入一个字节，将给定的int值对应的2进制的"低八位"写入文件
//                                       vvvvvvvv
//            00000000 00000000 00000000 00000001
//
//            文件fos.dat的内容:
//            00000001
//         */
//        fos.write(1);
//        /*
//            00000000 00000000 00000000 00000010
//            文件fos.dat的内容:
//            00000001 00000010
//         */
//        fos.write(2);
//
//        System.out.println("写出完毕！");
//        fos.close();

        FileOutputStream fos = new FileOutputStream("./djfe.dsfs");
        fos.write(3);
        System.out.println("写出完毕！");
        fos.close();









    }
}
